import {observable, computed, 
    action,makeObservable} from 'mobx';
class userStoreClass {
    // mobx 6.x ,mobx-react 7.x版本中，解决更新state后，其它组件不更新的问题
    
    // makeObservable来为每个属性指定一个注释 。
    constructor(){
        makeObservable(this)
    }
    // 声明 可观察的状态（变量）
    @observable user = {
      name: 'admin',
      role: '管理员',
      isGuest : 'false'
    };
    count = 0;
    @computed get userName(){
        return this.user.name;
    }
    // 动作去修改可观察的状态
    @action.bound changeUser(){
      if(this.count % 2 === 1){
          this.user = {
              name: 'admin',
              role: '管理员',
              isGuest : 'false'
          };
      }else{
        this.user = {
            name: 'guest',
            role: '访客',
            isGuest : 'true'
        }
      }
      this.count ++;
    }
}
const userStore = {userInfo:new userStoreClass()}
export default userStore;